package com.stark.wechat.service.menu.model;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * 下发消息（除文本消息）按钮
 * <p>用户点击media_id类型按钮后，微信服务器会将开发者填写的永久素材id对应的素材下发给用户，永久素材类型可以是图片、音频、视频。请注意：永久素材id必须是在“素材管理/新增永久素材”接口上传后获得的合法id。
 *
 * @author <a href="mengbin@eastsoft.com.cn">Ben</a>
 * @version 1.0.0
 * @since 2025/8/6
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@JsonIgnoreProperties(ignoreUnknown = true)
public class MediaIdButton implements Button {

    private static final long serialVersionUID = 5052916729657381973L;

    /**
     * 菜单的响应动作类型（与 sub_button 互斥）
     */
    private final ButtonType type = ButtonType.media_id;

    /**
     * 菜单标题，不超过16个字节，子菜单不超过60个字节
     */
    private String name;

    /**
     * 调用新增永久素材接口返回的合法media_id。media_id类型和view_limited类型必须
     */
    @JsonProperty("media_id")
    private String mediaId;

}
